package uk.ac.man.cs.choif.nlp.surface;

import uk.ac.man.cs.choif.extend.*;
import uk.ac.man.cs.choif.extend.io.*;
/**
 * A word set
 * Creation date: (09/21/99 01:52:33)
 * @author: Freddy Choi
 */
public class WordList extends java.util.Hashtable {
/**
 * 
 * Creation date: (09/21/99 01:54:44)
 * @param in java.io.File
 */
public WordList(java.io.File in) {
	super(100, (float) 0.6);
	Debugx.msg("Stopword", "Loading stopword list...");
	try {
		parse(new LineInput(in));
		Debugx.msg("Stopword", "Ready.");
	}
	catch (Exception e) {
		Debugx.handle(e);
	}
}
/**
 * Construct a word list
 * Creation date: (09/24/99 18:47:23)
 * @param L java.lang.String[]
 */
public WordList(String[] L) {
	Boolean dummy = new Boolean(true);
	for (int i=L.length; i-->0;) put(L[i], dummy);
}
/**
 * Test if word is in the word list.
 * Creation date: (07/12/99 23:46:08)
 * @return boolean
 * @param word java.lang.String
 */
public boolean has(final String word) {
	return (get(word) != null);
}
/**
 * Parse an input file
 * Creation date: (09/21/99 01:56:09)
 * @param in uk.ac.man.cs.choif.extend.io.LineInput
 */
private void parse(LineInput in) {
	Boolean dummy = new Boolean(true);
	while (in.hasMoreElements()) put((String) in.nextElement(), dummy);
}
/**
 * Get a stopword list
 * Creation date: (11/05/99 06:18:43)
 * @return uk.ac.man.cs.choif.nlp.surface.WordList
 */
public final static WordList stopwordList() {
	WordList sw = new WordList(new String[]{
		"yes",
		"no",
		"said",
		"n\'t",
		"\'m",
		"\'s",
		"a",
		"about",
		"above",
		"across",
		"after",
		"afterwards",
		"again",
		"against",
		"all",
		"almost",
		"alone",
		"along",
		"already",
		"also",
		"although",
		"always",
		"am",
		"among",
		"amongst",
		"amoungst",
		"amount",
		"an",
		"and",
		"another",
		"any",
		"anyhow",
		"anyone",
		"anything",
		"anyway",
		"anywhere",
		"are",
		"around",
		"as",
		"at",
		"back",
		"be",
		"became",
		"because",
		"become",
		"becomes",
		"becoming",
		"been",
		"before",
		"beforehand",
		"behind",
		"being",
		"below",
		"beside",
		"besides",
		"between",
		"beyond",
		"bill",
		"both",
		"bottom",
		"but",
		"by",
		"call",
		"can",
		"cannot",
		"cant",
		"co",
		"computer",
		"con",
		"could",
		"couldnt",
		"cry",
		"de",
		"describe",
		"detail",
		"do",
		"done",
		"down",
		"due",
		"during",
		"each",
		"eg",
		"eight",
		"either",
		"eleven",
		"else",
		"elsewhere",
		"empty",
		"enough",
		"etc",
		"even",
		"ever",
		"every",
		"everyone",
		"everything",
		"everywhere",
		"except",
		"few",
		"fifteen",
		"fify",
		"fill",
		"find",
		"fire",
		"first",
		"five",
		"for",
		"former",
		"formerly",
		"forty",
		"found",
		"four",
		"from",
		"front",
		"full",
		"further",
		"get",
		"give",
		"go",
		"had",
		"has",
		"hasnt",
		"have",
		"he",
		"hence",
		"her",
		"here",
		"hereafter",
		"hereby",
		"herein",
		"hereupon",
		"hers",
		"herself",
		"him",
		"himself",
		"his",
		"how",
		"however",
		"hundred",
		"i",
		"ie",
		"if",
		"in",
		"inc",
		"indeed",
		"interest",
		"into",
		"is",
		"it",
		"its",
		"itself",
		"keep",
		"last",
		"latter",
		"latterly",
		"least",
		"less",
		"ltd",
		"made",
		"many",
		"may",
		"me",
		"meanwhile",
		"might",
		"mill",
		"mine",
		"more",
		"moreover",
		"most",
		"mostly",
		"move",
		"much",
		"must",
		"my",
		"myself",
		"name",
		"namely",
		"neither",
		"never",
		"nevertheless",
		"next",
		"nine",
		"no",
		"nobody",
		"none",
		"noone",
		"nor",
		"not",
		"nothing",
		"now",
		"nowhere",
		"of",
		"off",
		"often",
		"on",
		"once",
		"one",
		"only",
		"onto",
		"or",
		"other",
		"others",
		"otherwise",
		"our",
		"ours",
		"ourselves",
		"out",
		"over",
		"own",
		"part",
		"per",
		"perhaps",
		"please",
		"put",
		"rather",
		"re",
		"same",
		"see",
		"seem",
		"seemed",
		"seeming",
		"seems",
		"serious",
		"several",
		"she",
		"should",
		"show",
		"side",
		"since",
		"sincere",
		"six",
		"sixty",
		"so",
		"some",
		"somehow",
		"someone",
		"something",
		"sometime",
		"sometimes",
		"somewhere",
		"still",
		"such",
		"system",
		"take",
		"ten",
		"than",
		"that",
		"the",
		"their",
		"them",
		"themselves",
		"then",
		"thence",
		"there",
		"thereafter",
		"thereby",
		"therefore",
		"therein",
		"thereupon",
		"these",
		"they",
		"thick",
		"thin",
		"third",
		"this",
		"those",
		"though",
		"three",
		"through",
		"throughout",
		"thru",
		"thus",
		"to",
		"together",
		"too",
		"top",
		"toward",
		"towards",
		"twelve",
		"twenty",
		"two",
		"un",
		"under",
		"until",
		"up",
		"upon",
		"us",
		"versa",
		"very",
		"via",
		"vice",
		"was",
		"we",
		"well",
		"were",
		"what",
		"whatever",
		"when",
		"whence",
		"whenever",
		"where",
		"whereafter",
		"whereas",
		"whereby",
		"wherein",
		"whereupon",
		"wherever",
		"whether",
		"which",
		"while",
		"whither",
		"who",
		"whoever",
		"whole",
		"whom",
		"whose",
		"why",
		"will",
		"with",
		"within",
		"without",
		"would",
		"yet",
		"you",
		"your",
		"yours",
		"yourself",
		"yourselves"
	});
	
	return sw;
}
}
